In some applications and systems, such as networking systems, it is desirable to recognize the appearance of particular data. For example, network security systems, such as firewalls or intrusion detection systems, may use pattern matching to recognize certain data strings received by the systems. Viruses and/or other types of unwanted data, for example, may be recognized for network protection. Pattern matching may also be used for other purposes, such as network monitoring or biological pattern matching (e.g., particular portions of a deoxyribonucleic acid (DNA) sequence may be of interest for medical research). To detect the appearance of desirable or undesirable data, one or more predefined data patterns may be compared to the data under study. If one or more of the predefined data patterns matches a portion of the data under study, appropriate action may be executed. If a pattern representative of a computer virus is detected, for example, the data that contains the virus may be removed to reduce infection. Existing multiple pattern matching algorithms are complex and may use relatively large memory footprints and a significant amount of time to perform multiple pattern matching on data strings.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art. Accordingly, it is intended that the claimed subject matter be viewed broadly, and be defined only as set forth in the accompanying claims